S3 + CloudFront でホスティングしているWebサイトをWAFを使ってメンテナンス画面表示にする
参考記事
S3 + CloudFront でホスティングしている静的 Web サイトをメンテナンス状態にする
こちらの方法で最初試したが、メンテナンスページも同じCloudFrontで管理しているとメンテナンスページ自体がブロックされてしまったので駄目だった。
FOURIER TECH BLOG 〜 IT技術ブログ 〜
こちらの方法で最終的にうまくいった。ブロック時にカスタムレスポンスでメンテナンスHTMLを返却して表示する。
手順
AWS WAF画面で、ip setを作成する
Terraformでwhite-list用のIP Setsを作成でもok
AWS WAF画面で、ACLを作成する
Ruleの設定で、Add my own rules and rule groups を選択して rule を作成する
ruleで、前述の ip sets を参照し、それらのアクセスを Allow とする
それ以外のデフォルトリクエストに対して、Action を Blockとする
メンテナンスhtmlも表示したい場合は、custom response body を作成しておき、デフォルトリクエストのカスタムレスポンスとして 503, custom response body を設定する
https://gyazo.com/ef3e26a8fef96bdc5794ccc03699d470
Amazon CloudFrontの設定で、上記のACLを関連付ける
その瞬間、メンテナンスモードになる
#Amazon_S3